“The cloud” is the emerging outsourced commodity infrastructure for computation, storage, and networking that is increasingly becoming the backbone for all of IT—especially in market segments that must scale rapidly and to global dimensions, such as healthcare, finance, energy, and government/public safety.
Ideally, a cloud infrastructure customer would develop their software and enjoy automatic benefits of scale, fault-tolerance, and security at substantially reduced maintenance costs so that the cloud-customer can be assured of the quality of the resulting system despite it being no longer under their full ownership or control.
However, software development for the cloud is challenging and far from an automatic process. The heterogeneous nature of potential deployment platforms and partners, the rapidly evolving base technologies, and the focus on systems over applications all contribute to elevated complexity of architecture and development for cloud applications. The lack of standards, tools and even expectations for these, create challenges for development. This results in a lack of trust in the use of cloud infrastructure, especially for demanding applications in the mentioned problem and application domains.